﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using DTOMedicalProject;

namespace MRAccesoDatos
{
    public class clsPais
    {

        MRAccesoDatosDataContext db = new MRAccesoDatosDataContext();

        public clsPais()
        {
            
        }

        public List<DTOPais> ObtenerPais()
        {
            int i = 0;

            List<DTOPais> lstPais = new List<DTOPais>();

            try
            {
                var pais = (from tp in db.Pais
                                      select tp).ToList();

                foreach (Pai tPai in pais)
                {
                    lstPais.Add(new DTOPais());
                    lstPais[i].CodigoPais = tPai.CodigoPais;
                    lstPais[i].Descripcion = tPai.Descripcion;
                   


                    i++;
                }

            }
            catch (Exception ex)
            {
                throw new Exception("Ocurrio un error obteniendo los datos. " + ex.Message);
            }

            return lstPais;

        }

        public DTORespuesta InsertarPais(DTOPais tpais)
        {
            DTORespuesta resp = new DTORespuesta();
            Pai pais = new Pai();

            try
            {

                pais.CodigoPais = tpais.CodigoPais;
                pais.Descripcion = tpais.Descripcion;


                db.Pais.InsertOnSubmit(pais);
                db.SubmitChanges();

                resp.Mensaje = "Los datos fueron insertados correctamente";
                resp.Codigo = 100;

                return resp;
            }
            catch (Exception ex)
            {
                resp.Mensaje = ex.Message;
                resp.Codigo = -100;

                return resp;

            }
        }

        public DTORespuesta ActualizaPais(DTOPais tpais)
        {
            DTORespuesta resp = new DTORespuesta();


            try
            {

                Pai tp_pais = db.Pais.Single(p => p.CodigoPais == tpais.CodigoPais);
                tp_pais.CodigoPais = tpais.CodigoPais;
                tp_pais.Descripcion = tpais.Descripcion;
              



                resp.Codigo = 102;
                resp.Mensaje = "Los datos fueron Actualizados correctamente.";
                return resp;

            }
            catch (Exception ex)
            {
                resp.Mensaje = ex.Message;
                resp.Codigo = -102;
                return resp;

            }

        }

        public DTORespuesta EliminarPais(DTOPais tpais)
        {
            DTORespuesta resp = new DTORespuesta();

            try
            {
                var tp_pais = db.Pais.Single(p => p.CodigoPais == tpais.CodigoPais);
                db.Pais.DeleteOnSubmit(tp_pais);
                db.SubmitChanges();

                resp.Codigo = 101;
                resp.Mensaje = "Los datos fueron eliminados correctamente.";
                return resp;
            }
            catch (Exception ex)
            {
                resp.Mensaje = ex.Message;
                resp.Codigo = -101;
                return resp;
            }
        }

        

        
    }
}
